package com.yfp.machine.mapper;


import com.yfp.machine.domain.PositionType;
import com.yfp.machine.domain.dto.CoordinateLimitSummary;
import com.yfp.machine.domain.dto.FilterDeviceInfo;
import com.yfp.machine.domain.dto.SearchBasicInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface AppletMachineMapper {

    /**
     * 筛选设备基本信息
     *
     * @param machineType    机器类型
     * @param machineLabel   机器标签
     * @param positionTypeId 职位类型id
     * @return {@link List}<{@link FilterDeviceInfo}>
     */
    List<FilterDeviceInfo> deviceLimitBasicInfo(@Param("machineType") Integer machineType, @Param("machineLabel") String machineLabel,@Param("positionTypeId") String positionTypeId);

    /**
     *  获取设备点位类型
     *
     * @param word 关键词
     * @return {@link List}<{@link SearchBasicInfo}>
     */
    List<SearchBasicInfo> positionTypeSearchBasicInfo(@Param("word") String word);

    /**
     * 根据坐标点和距离返回设备信息
     *
     * @param latitude  纬度
     * @param longitude 经度
     * @param maxRange  最大范围
     * @return {@link List}<{@link CoordinateLimitSummary}>
     */
    List<CoordinateLimitSummary> deviceCoordinateLimitSummary(String latitude, String longitude, Double maxRange);

    /**
     * 通过机器id获取销售时间
     *
     * @param machineId 机器id
     * @return {@link PositionType}
     */
    PositionType getSaleTimeByMachineId(@Param("machineId") String machineId);
}
